package com.wzm.db;


import com.wzm.bean.DownInfo;
import com.wzm.bean.HistoryBean;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper {
	
	private final static String DB_NAME="movies.db";
    private final static int VERSION =2;   
    private static DBHelper instance=null;
    private SQLiteDatabase db = null;
    private Context mContext = null;
    /* 表格创建SQL */
    private String HOSTORYSQL = "CREATE TABLE if not exists history (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , movieid INTEGER, mark INTEGER, moviename TEXT, addtime DATETIME,size INTEGER)";
    private String DOWNSQL = "CREATE TABLE if not exists downinfo (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , movieid INTEGER, size INTEGER default 0 , curpage INTEGER default 0, moviename TEXT,downTag INTEGER default 0,filesize DOUBLE DEFAULT 0)";
    //private String TAGSQL = "CREATE TABLE taginfo (id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , movieid INTEGER, like INTEGER DEFAULT -1)";
    
    //单例模式
    public synchronized static DBHelper getInstance(Context context){       
        if(instance==null){ 
            instance=new DBHelper(context);     
        }       
        return instance;
    }
    
    public synchronized void opendatabase()
	{
		if(db==null)
		{
			db = getWritableDatabase();
		}
	}
	
	public synchronized void closedatabase()
	{
		if(db!=null)
			db.close();
		db = null;
	}
    
    
	DBHelper(Context context)
	{
		
		super(context, DB_NAME, null, VERSION);			
		mContext = context;
		opendatabase();
		
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL(HOSTORYSQL);
		db.execSQL(DOWNSQL);
		//db.execSQL(TAGSQL);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		db.execSQL("DROP TABLE IF EXISTS history");
		db.execSQL("DROP TABLE IF EXISTS downinfo");
		//db.execSQL("DROP TABLE IF EXISTS taginfo");
		this.onCreate(db);
	}   
    
    
    //数据库操作函数
    public Cursor querySql(String sql,String sqlstr[])
    {
    	Cursor cursor = db.rawQuery(sql, sqlstr);
    	if(cursor!=null&&cursor.getCount()>0)
		{
			cursor.moveToFirst();
		}
		return cursor;
    }
    
    //插入书签
    public long insertHistory(HistoryBean hb)
    {
    	ContentValues values = new ContentValues(); 
    	values.put("movieid", hb.getMovieid());
    	values.put("mark", hb.getMark());
    	values.put("moviename", hb.getMoviename());
    	values.put("addtime", hb.getAddtime());
    	values.put("size", hb.getSize());
    	return db.insert("history", null, values);
    }
    
    //更新书签
    public long updateHistory(long historyid,int mark,String updatetime,int size)
    {
    	ContentValues values = new ContentValues();  
        values.put("mark", mark);
        values.put("addtime", updatetime);
        values.put("size", size);
        return db.update("history", values, "id=?", new String[]{historyid+""});
    }
    
    //获取书签ID
//    public int getMark(int movieid)
//    {
//    	int mark = 0;
//    	Cursor cursor = db.query("history", new String[] { "id", "mark" }, "movied=?", new String[] { movieid+"" }, null, null, null); 
//    	
//    	return mark;
//    }
    
    //插入下载队列
    public long insertDownInfo(DownInfo di)
    {
    	ContentValues values = new ContentValues();
    	values.put("movieid",di.getMovieid());
    	values.put("moviename", di.getMoviename());
    	values.put("size", di.getSize());
    	values.put("curpage", di.getCurpage());
    	return db.insert("downinfo", null, values);
    }
    
    
    //更新下载队列(下载完成的时候)
    public long updateDownInfo(String movieid,int curPage,int tag,long size)
    {
    	ContentValues values = new ContentValues();
    	values.put("curpage", curPage);
    	values.put("downTag", tag);
    	values.put("filesize", size);
    	return db.update("downinfo",values,"movieid=?",new String[]{movieid});
    }
    
    //更新下载队列(下载完成的时候)
    public long updateDownInfo(String movieid,int curPage,int tag)
    {
    	ContentValues values = new ContentValues();
    	values.put("curpage", curPage);
    	values.put("downTag", tag);   	
    	return db.update("downinfo",values,"movieid=?",new String[]{movieid});
    }
    
    //更新下载队列
    public long updateDownInfoSize(String movieid,int curPage,int size)
    {
    	ContentValues values = new ContentValues();
    	values.put("curpage", curPage);
    	values.put("size",size);    	
    	return db.update("downinfo",values,"movieid=?",new String[]{movieid});
    }
    //删除本地队列
    public long delDownInfo(String movieid)
    {
    	db.delete("history","movieid=?",new String[]{movieid});
    	return db.delete("downinfo", "movieid=?", new String[]{movieid});
    }
    
    
    
    
    
    
    
    
//    //插入下载队列
//    public long insertTagInfo(String movieid, int like)
//    {
//    	ContentValues values = new ContentValues();
//    	values.put("movieid",movieid);
//    	values.put("like", like);
//    	return db.insert("taginfo", null, values);
//    }   
//    public int getLike(String movieid)
//    {
//    	int like = -1;
//    	Cursor cursor = db.query("taginfo", new String[] {"like" }, "movieid=?", new String[] { movieid }, null, null, null); 
//    	if(cursor!=null&&cursor.getCount()>0)
//		{
//			cursor.moveToFirst();
//			like = cursor.getInt(0);
//			cursor.close();
//		}  	
//		return like;
//    }
//    public long updateTagInfoLike(String movieid,int like)
//    {
//    	ContentValues values = new ContentValues();
//    	values.put("like",like);    	
//    	return db.update("taginfo",values,"movieid=?",new String[]{movieid});
//    }
    
    
    
    
    public void excutesql(String sql)
    {
    	db.execSQL(sql);
    }
    
    
}
